<?php
/**
 * Класс Controller_Cart отвечает за обработку корзины
 * @author Sayp
 */
class Controller_Cart extends Controller_Base {
	
	public function action() {
		switch ($this->arrRequest[1]) {
			case '':
				$this->actionCart();
				break;
			case 'add_order':
				$arrProducts = Cart::getProducts();	// Продукты пользователя в корзине на текущий момент
				if(empty($arrProducts)) return User_Seance::moveTo(W_ABSPATH . 'cart');	// Если продуктов нет - кидаем на страницу корзины
				$this->actionAddOrder($arrProducts);
				break;
			default:
				throw new Exception('', 404);
		}
	}
	
	/**
	 * Страница корзины
	 */
	private function actionCart() {
		$arrProducts = Cart::getProducts();
		
		$this->bodyAttr = 'cart-page';
		$this->title = $this->pageHead = 'Корзина';
		
		$this->showHeader();
			View_Cart::showCartPage($arrProducts);
		$this->showFooter();
	}
	
	/**
	 * Страница добавление заказа
	 * 
	 *@param array $arrProducts - массив продуктов текущего заказа
	 */
	public function actionAddOrder(array $arrProducts) {
		if (isset($_POST['Order'])) {
			$objOrder = new Order($_POST['Order']);
			if($objOrder->save()) {
				
				User_Seance::moveToWithMessage(W_ABSPATH . 'profile/orders', 'Заказ успешно завершен, мы свяжемся с Вами для подтверждения.');
			}
		}
		else $objOrder = new Order();
	
		
	
		$this->title = $this->pageHead = 'Оформление заказа';
	
		$this->showHeader();
			View_Cart::showAddOrderPage($objOrder, $arrProducts);
		$this->showFooter();
	}
}